﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CopyGameFramework.Debugger
{
    public interface IDebuggerWindow
    {
        /// <summary>
        /// 初始化调试器窗口。
        /// </summary>
        /// <param name="args"></param>
        void Initialize(params object[] args);

        /// <summary>
        /// 关闭调试窗口。
        /// </summary>
        void Shutdown();

        /// <summary>
        /// 进入调试窗口
        /// </summary>
        void OnEnter();

        /// <summary>
        /// 离开调试窗口。
        /// </summary>
        void OnLeave();

        /// <summary>
        /// 调试窗口轮询模块
        /// </summary>
        /// <param name="elapseSeconds">逻辑流逝时间，以秒为单位。</param>
        /// <param name="realElapseSeconds">真实流逝时间，以秒为单位。</param>
        void OnUpdate(float elapseSeconds, float realElapseSeconds);

        /// <summary>
        /// 调试窗口绘制
        /// </summary>
        void OnDraw();

    }
}
